#ifndef								__ORDER_H__
#	define							__ORDER_H__

#	include							"IOrder.h"
#	include							"Protocol.h"
#	include							<vector>

class								Order : public IOrder
{
public:
	Order();
	~Order();

private:
	std::vector<byte>				*_content;
	unsigned short					_sender_id;
	Protocol						_protocol;
	std::vector<byte>::iterator		_it;
	size_t							_current;

public:
	virtual Protocol				getProtocol() const;
	virtual void 					*getData(size_t);
	virtual unsigned short			getSenderId() const;
	virtual	size_t					size() const;
	virtual void					pushData(void *, size_t);
	virtual void					setData(std::vector<byte> *data);
	virtual void					setSenderId(unsigned short id);
	virtual byte					*send();
	virtual void					init();
};

#endif								// ! __IORDER_H__
